/**
   This file indicates the basis of the lom (lom is like com) datatype
   system.  The lom server will keep track of symbols and the correct
   object hierarchy.  Clients will have to query for the symbol
   database and for instance properties and types.  Assumptions will
   be made that the client and server agree on schema before
   communication starts.  Datatype-marshalling does not happen in the
   server and datatype mismatches are considered errors.

   TODO - figure out who makes instances and parameterize creation system
   with even system so that creation mechanisms set a certain event method
   on instance objects.  This way I can have several LOM systems that send
   events to different places, but share class definitions and symbols
   and such.

   TODO - Figure out lom's network communication system.  Probably going
   to be darn simple, but I do want it robust so it must have error tolerances
   built in.
*/

#ifndef LOMHH
#define LOMHH
#include "stdincludes.hh"
#include "lom-typedefs.hh"
#include "lom-events.hh"
#include "lom-instance-manager.hh"
#include "lom-root.hh"
#include "lom-errors.hh"
#include "lom-class.hh"
#include "lom-class-manager.hh"
#include "lom-instance.hh"


namespace lom
{

    
    inline const licada::TNameStr& cls( const LomInstance* inst ) { return inst->getClass()->getName(); }

}
#endif
